package com.hundsun.ares.studio.ui.editor.text; import org.eclipse.core.resources.IFile; import org.eclipse.jface.action.Action; import org.eclipse.jface.util.OpenStrategy; import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.ide.IDE; import com.hundsun.ares.studio.core.IARESElement; import com.hundsun.ares.studio.internal.core.ArchiveARESResource; import com.hundsun.ares.studio.ui.ARESResourceEditorInput; /** * <p>CreatedDate: 2008-2-29</p> * @author sundl */ public class OpenLinkAction extends Action { private IARESElement element; public OpenLinkAction(IARESElement element) { this.element = element; } public void run() { try { if(element.getResource() instanceof IFile) { IFile file = (IFile)element.getResource(); IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IDE.openEditor(page, file); } else { // 2012-04-13 sundl ��Ӵ������ð������Դ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (element instanceof ArchiveARESResource) { ArchiveARESResource aresfile = (ArchiveARESResource)element; ARESResourceEditorInput input = new ARESResourceEditorInput(aresfile); boolean active = OpenStrategy.activateOnOpen(); try { IEditorDescriptor editor = IDE.getEditorDescriptor(aresfile.getElementName()); if (editor != null) { IDE.openEditor(page, input, editor.getId(), active); } } catch (PartInitException e) { e.printStackTrace(); } } } } catch (PartInitException e) { e.printStackTrace(); } } }